Advancements in the field of virtualization and shared computing have led to the development of cloud-computing infrastructure. The cloud-computing infrastructure may include a data centre that has one or more computational resources. These computational resources may be allocated to a requestor for performing one or more operations. Examples of the computational resources may include, but are not limited to, one or more processor instances, storage space, and RAM memory space. In an embodiment, the computational resources are allocated to the requestor in the form of a virtual machine. In addition to the computational resources, the cloud-computing infrastructure may offer other services to the requestor such as software and operating systems.
A typical cloud-computing infrastructure maintains a pool of pre-configured virtual machines having a pre-defined configuration. When the requestor requests to execute an application, the cloud-computing infrastructure may search for an optimum virtual machine in the pool of virtual machines to get the application executed. As the pool of virtual machines includes a large number of virtual machines, searching for the optimum virtual machine may be a cumbersome and a time consuming job.